package com.db4o.internal.odbgen.plugins.java.maingenerator;

import com.db4o.internal.odbgen.plugins.XmlSchemaElementList;

/**
 * 
 * Contains all elements and attributes used inside XmlSchema 
 * that are processed by MainGenerator.
 * @author liviug
 */
public enum XmlSchemaElement implements XmlSchemaElementList{
    IMPORT("import"),
    IMPORTVALUE("value"),
    PACKAGE("package"),
    NAME("name"),
    CLASS("class"), 
    IMPLEMENTS("implements"),
    /**
     * The name of the superclass if any.
     * This is optional
     * IMPORTANT: Although this is implemented, it is still not functional.
     * Missing features:
     * -calling the base class constructor.
     * -change detector does not function well when extending classes.
     */
    EXTENDS("extends"),
    FIELD("field"),
    FIELDTYPE("type"),
    ENUM("enum"),
    ENUMCONSTANT("constant"),
    ENUMVALUE("value"),
    ENUMVALUECONTENT("content"),
    ENUMVALUEPARAMID("paramId"),
    ENUMPARAMETER("parameter"),
    ENUMPARAMETERID("id"),
    ENUMPARAMETERTYPE("type"),
    INTERFACE("interface"), 
    INTERFACEGETTERSETTER("gs"), 
    GSHASGETTER("hasGetter"),
    GSHASSETTER("hasSetter"),
    GSBASENAME("baseName"),
    GSTYPE("type"),
    ;

    private String _name;
    XmlSchemaElement(String name){
        this._name = name;
    }
    /**
     * See {@link XmlSchemaElementList} for details.
     */
    @Override
    public String getName() {
        return _name;
    }
}
